<?php
namespace app\api\controller;

use app\api\model\SortModel;

 use think\Controller;
use think\Db;
use think\Request;
use think\Cache;
use think\Cookie;
use think\Session;
class Role extends Common
{


    public function index()
    {
        $db=Db::name("role");
        $query = input('get.query');//关键字
        $pagenum = input('get.pagenum');//当前页码
        $pagesize = input('get.pagesize');//当前显示行数
        // $w['status'] = array('eq',1);
        if($query) $w['role_name'] = array('like','%'.$query.'%');
        $w['id'] = array('neq',1);
        $list = Db::name('role')
        ->field('id,role_name,role_auth_ids,role_auth_check,status')
        ->where($w)->limit(($pagenum - 1) * $pagesize,$pagesize)->select();
        foreach ($list as $k => $v) {
            // 综合勾选的一级栏目数据
            $list[$k]['message'] = $v['role_auth_ids']?$this->get_catname($v['role_auth_ids']):'所有栏目';
            // 前端勾选的数据
            $role_auth_check = explode(',',$list[$k]['role_auth_check']);
            foreach ($role_auth_check as $ks => $vs) {
                $list[$k]['arr'][] = intval($vs);
            }
            $list[$k]['status'] = $v['status']==1?true:false;
        }
        // 总页数/行数
        $count = Db::name('role')->where($w)->count();
        // 总页数/行数
        $total = round($count/$pagesize);
        $total = $count;
        // dump($list);die();
        $arr['data']['pagenum']=$pagenum;
        $arr['data']['total']=$total;
        $arr['data']['roles']=$list;
        $arr['meta']=array('msg'=>'获取用户列表成功','status'=>200);
        return json_encode($arr);

    }

    public function add()
    {
        $data=input('post.');
        $data['status']=$data['status']?1:0;
        // dump($data);
        // die();
        $id=input('id',0);
        $db=Db::name("role");
        $v=$db->find($id);
        if($v){
            $v['role_auth_ids']=explode(",",$v['role_auth_ids']);
        }else{
            $v['role_name']="";
            $v['role_auth_ids']=array();
            $v['status']=1;
            $v['id']='';

        }

        // print_r($v['role_auth_ids']);die;
        if(Request::instance()->isPost()){

            $auth_ids=implode(",",$data['checkList']);//把数组分割成字符串
            if($auth_ids){
                // 综合勾选的一级栏目数据
                $pids=$this->role_auth_ids($auth_ids);
                $data['role_auth_ids']=$auth_ids.$pids;
                // 前端勾选的数据
                $data['role_auth_check']=$auth_ids;
                unset($data['checkList']);
            }

            // print_r($data);die;
            if($id){
                if(Db::name("role")->where("id=".$id)->update($data)){
                    $data['id'] = $id;
                    $arr['data']=$data;
                    $arr['meta']=array('msg'=>'修改角色成功','status'=>200);
                }else{
                    $arr['data']=null;
                    $arr['meta']=array('msg'=>'修改角色失败','status'=>300);
                }
            }else{
                $data['sendtime']=time();
                if($id = Db::name("role")->insert($data)){
                    $data['id'] = $id;
                    $arr['data']=$data;
                    $arr['meta']=array('msg'=>'添加角色成功','status'=>200);
                }else{
                    $arr['data']=null;
                    $arr['meta']=array('msg'=>'添加角色失败','status'=>300);
                }
            }

            return json_encode($arr);

        }



       // print_r($v);die;
        $this->assign("v",$v);
        return $this->fetch("/role/add");
    }

    public function del()
    {
        $id=input('id',0);

        if(Db::name("role")->delete($id)){
            $arr['data']=null;
            $arr['meta']=array('msg'=>'删除成功','status'=>200);
        }else{
            $arr['data']=null;
            $arr['meta']=array('msg'=>'删除失败','status'=>300);
        }

        return json_encode($arr);die;

    }

    public function audit()
    {

        $id=input("id",0);
        //echo $id;
        $v=Db::name("role")->find($id);
        $data['status']=$v['status']?0:1;

        if(Db::name("role")->where("id=".$id)->update($data)){
            $arr['data']=$v;
            $arr['meta']=array('msg'=>'获取角色状态成功','status'=>200);
        }else{
            $arr['data']=$v;
            $arr['meta']=array('msg'=>'获取角色状态失败','status'=>300);
        }

        echo json_encode($arr);
    }
}